Many computer applications use a graphical user interface (GUI). A user typically navigates a GUI through a cursor tracking system. To enable any particular GUI component, a user often employs a device, such as, a mouse, track ball, arrow keys, a touch screen, voice recognition, etc., first, to position the cursor on a component and then, to select an operation related to that component. For example, a GUI may include an “OK” button as a component that initiates some action. To enable the button's action, a user employs a mouse, or other suitable device, first, to position a cursor on, or near, the “OK” button and then, to select the button's corresponding operation by waiting, hitting return, clicking a mouse button, etc. Of course, in some instances, positioning and selection may be achieved simultaneously, e.g., a touch screen. For any of these processes to work, at some point in time, the GUI's underlying software, or a computer's operating system, must link the cursor with the desired component.
A commonly used process for linking a cursor with a component involves hit testing. In a typical hit testing process, each GUI component has an associated area. To link a cursor with a component, a program determines which component's (or components') area encompasses the cursor position. If only one component's area encompasses the cursor position, then the cursor is linked to that component.
Hit testing often relies on resources provided by an operating system, such as the WINDOWS® operating system (Microsoft Corporation, Redmond, Wash.). Consequently, as the number of GUI components increases, so does the reliance on such resources. The problem has become particularly acute with the advent of GUI frameworks, such as the .NET™ framework (Microsoft Corporation, Redmond, Wash.), which cater to an increasing need for a richer working set of components for usable applications. Thus, a need exists for new hit testing and/or other procedures that operate in a more efficient manner and/or lessen the demand placed on an operating system and/or a framework.